Due to increasing popularity of multimedia streaming over networks, such as the Internet, streaming performance is an important issue. Typically, there are two factors that affect streaming performance. The first is the fact that available network bandwidth may vary over time depending on the amount of network traffic. The second is the fact that current delivery processes are not error free, due to the best-effort nature of the current Internet. This results in data packets being occasionally lost during transmission. Due to the nature of common video encoding methods, it is common for data in one data packet to depend on data that is contained in a previous data packet, accordingly, performance of streaming video suffers when data packets are not received.
Various video encoding methods can be implemented to address the first issue, that of varying available bandwidth. Such methods include a fine granularity scalable (FGS) encoding scheme, a frame-based progressive fine granularity scalable (PFGS) encoding scheme, and a macroblock-based PFGS encoding scheme, each of which is an improvement upon the previous in terms of adapting to available bandwidth variance. Although FGS/PFGS encoding methods can effectively improve performance of streaming video over networks with varying bandwidth, they do not address performance decreases caused by lost data packets.
Independent development efforts have also focused on ways of improving the delivery of data packets over a network. This work has shown that performance improvement has an inverse relationship to the degree of inter-packet dependency. That is, streams of data packets that do not depend on one another result in greater performance than streams of data packets that depend heavily on one another.
Accordingly, there is a need to establish a method for packetizing FGS/PFGS encoded video bitstreams such that dependency among the resulting data packets is minimized.